<?php

/**
 * Элемент формы "файл".
 *
 */
class Kernel_Form_Element_File extends Kernel_Form_Element_Abstract {

    /**
     * Конструктор.
     *
     * @param   array   $params
     */
    public function __construct($params = array()) {
        $this->value = new Kernel_Form_Value_File_Blank();
        parent::__construct($params);
    }

    /**
     * Возвращает значение поля для шаблона.
     *
     * @return  array
     */
    protected function _getValue() {
        return $this->value->successful()
            ? array(
                'name' => $this->value->getName(),
                'type' => $this->value->getType(),
                'size' => $this->value->getSize(),
            ) : null;
    }

    /**
     * Устанавливает значение элемента.
     *
     * @param   mixed   $value
     */
    public function setValue($value) {
        if (!$value->isBlank()) {
            $this->_getValue()->destruct();
            parent::setValue($value);
        }
    }
}
